<?php

   require_once 'db.php';


   function gb_install()
{
//запрос на создание таблицы сообщений 
	db_query('set names utf8 ');
	db_query(
		'CREATE TABLE IF NOT EXISTS gb_messages 
		(
			id int(10) unsigned NOT NULL auto_increment,
			datetime datetime NOT NULL,
			name varchar(100) NOT NULL,
			message text NOT NULL,
			PRIMARY KEY (id),
			INDEX (datetime)
	 	)
		DEFAULT CHARACTER SET  utf8
	 	
	 	'	
			);
			
	
//запрос на создание таблицы комментариев 			
	db_query(
		'CREATE TABLE IF NOT EXISTS gb_coments (
			comentid int(10) unsigned NOT NULL auto_increment,
			comentdatetime datetime NOT NULL,
			comentname varchar(100) NOT NULL,
			coment text NOT NULL,
			messageid varchar(100) NOT NULL,
			PRIMARY KEY (comentid),
			INDEX (comentdatetime)
		)
		DEFAULT CHARACTER SET  utf8
	 	'	
			);
	
}

function gb_delete($id)
{
  // удаление выбранного сообщения и связанных комментариев
  
  $comresult = db_query('SELECT * FROM gb_coments WHERE messageid='.$id.' ORDER BY comentdatetime  ');
	while($comrow = db_fetch_array($comresult))
	{
	  db_query('DELETE FROM gb_coments WHERE comentid = '.$comrow['comentid'].'; ');
	}
  db_query('DELETE FROM gb_messages WHERE id = '.$id);
 
  header('Location: '.PATH."?page=1"); // возврат на первую страницу
}

function gb_delcoment($id)
{ // удаление выбранного комментария
  db_query('DELETE FROM gb_coments WHERE comentid = '.$id);
  header('Location: '.PATH."?page=1"); //	
}
  
  function gb_add($name, $message, &$error)
{
	//добавление сообщения
	//проверка на пустые значения
	$error = '';
	if(empty($name))
		$error['name'] = 'Name empty!';
	if(empty($message))
		$error['message'] = 'Message empty!';
	
	
	if(!$error)
	{  //подготовка строк 
		$name = trim($name);
	    $name = stripslashes($name);
	
		$message = trim($message);
		$message = stripslashes($message);
		$message = nl2br($message);
		$message = strip_tags($message);
		$message = htmlspecialchars($message);
	//запрос на вставку в таблицу сообщений
		db_query('set names utf8');
		db_query('INSERT INTO gb_messages (name, message, datetime) VALUES( "'.$name. '", "'.$message.'", NOW());');
// переход на первую страницу
		header('Location: '.PATH."index.php?page=1");
	}
}

  function gb_change($id,$name, $message, &$error)
{
	//изменение сообщения
	//проверка на пустые значения
	$error = '';
	if(empty($name))
		$error['name'] = 'Name empty!';
	if(empty($message))
		$error['message'] = 'Message empty!';
	
	
	if(!$error)
	{
		$name = trim($name);
	    $name = stripslashes($name);
	
		$message = trim($message);
		$message = stripslashes($message);
		$message = nl2br($message);
	//запрос на обновление записей
		db_query('set names utf8');
		db_query('UPDATE gb_messages SET message = "'.$message.'", name = "'.$name.'" WHERE `gb_messages`.`id` ='.$id.';');
	
		header('Location: '.PATH."index.php?page=1");
	}
}


function gb_showpages($current)
{

  // узнаем число записей в гостевой книге
  // ceil() -- округление вверх
  $result = db_query('SELECT * FROM gb_messages');
 $recper = RECSPERPAGE;
  $pages = ceil(db_num_row($result)/$recper);

  // печатаем ссылки на страницы (номер текущей страницы не является ссылкой)

  print '<div class=c>';
  for($i = 1; $i <= $pages; $i++)
  {
    if($i != $current)
      print ' | <a href='.PATH.'index.php?page='.$i.'>'.$i.'</a>';
    else
      print ' | '.$i;
  }
  print ' |';
  
  // если это не последняя страница печатаем ссылку "Дальше"
  if($current < $pages)
    print ' <a href='.PATH.'index.php?page='.($current + 1).'>Дальше &gt;&gt;</a>';
  print '</div>';

}


function gb_show($page)
{
header ('Content-type: text/html; charset=utf8');	
  // положение первой записи страницы
  $begin = ($page-1) * RECSPERPAGE;
  $end=$page*RECSPERPAGE;
 
  $result = db_query('SELECT * FROM gb_messages ORDER BY datetime DESC LIMIT '.$begin.','.$end);
	
  // echo " цикл по всем выбранным записям";
  while($row = db_fetch_array($result))
  {
    $out .= template_show_body($row['id'], $row['name'], $row['message'], $row['datetime']);
	
	$comresult = db_query('SELECT * FROM gb_coments WHERE messageid='.$row['id'].' ORDER BY comentdatetime  ');
	while($comrow = db_fetch_array($comresult))
	{
	$out .= template_coments($comrow['comentname'],$comrow['comendatetime'],$comrow['coment'],$comrow['comentid']);
    }
  }
  // уничтожаем результат
  db_free_results($result);
  db_free_results($comresult);
  print $out;
}

function   gb_addcoment($messageid,$coment,$comentname)
{

//обработка ошибок
	$error = '';
	if(empty($comentname))
		$error['comentname'] = 'Name empty!';
	if(empty($coment))
		$error['coment'] = 'Coment empty!';
	
	
	if(!$error)
	{
		$comentname = trim($comentname);
	    $comentname = stripslashes($comentname);
	
		$coment = trim($coment);
		$coment = stripslashes($coment);
		$coment = nl2br($coment);
		$coment = strip_tags($coment);
		$coment = htmlspecialchars($coment);
	
		db_query('INSERT INTO gb_coments (comentname, coment, comentdatetime, messageid) VALUES ( "'.$comentname.
		 '", "'.$coment.'", NOW(),"'.$messageid.'")');




	header('Location: '.PATH."?page=1");
	
	}
}

function gb_coment($messageid)
 
{
	header('Location: '.PATH."coment.php?messageid=".$messageid);
}

//изменение комментария
  function gb_changecoment($id,$name, $message, &$error)
{
	
	$error = '';
	if(empty($name))
		$error['name'] = 'Name empty!';
	if(empty($message))
		$error['message'] = 'Message empty!';
	
	//обработка ошибок
	if(!$error)
	{
			
		$name = trim($name);
	    $name = stripslashes($name);
	
		$message = trim($message);
		$message = stripslashes($message);
		$message = nl2br($message);
	
		db_query('UPDATE gb_coments SET coment = "'.$message.'", comentname = "'.$name.'" WHERE `gb_coments`.`comentid` ='.$id.';');
	
		header('Location: '.PATH."index.php?page=1");
	}
}


?>